
'''


'''




#一、None 与空字符串、空列表、0 、False的值都是不相等的
#None本身也是一个对象
print(type(None))     #打印：<class 'NoneType'>
print(None == '')     #打印：False
print(None == [])     #打印：False
print(None == False)  #打印：False


#二、判空使用
#1.判断Python自带的类实例是否为空，我们可以直接判断实例：
list1 = [1,2,3]
list2 = []

if list1:
    print("list1不为空")   #打印

if list2:
    print("list2不为空")   #无打印


#判断自定义类实例是否为空，需要注意两个方法
#1.__len__方法返回False或者0时，判断test1则为空
class Test1():
    def __len__(self):
        print("len called")
        return False     #需要返回整型或者布尔值

test1 = Test1()
if test1:
    print("test1不为空")  #无打印

#2.__bool__方法只能返回布尔值，而且存在__bool__方法的时候，__len__将不会被调用
class Test2():
    def __bool__(self):
        print("bool called")
        return True      #需要返回整型或者布尔值

    def __len__(self):
        print("len called")
        return False     #需要返回整型或者布尔值

test2 = Test2()
if test2:
    print("test2不为空")  #无打印